boolean miniGui;


class Golpe {

  int frame;
  int tipo; //0--> saque//1-> golpea suelo//2-->golpea raqueta//3-->golpea Red//4-->Punto Dentro//5-->Punto fuera// 
  String meta;

  PVector pos;

  Golpe (String linea) {
    StringTokenizer st = new StringTokenizer(linea, " ():[],");
    String t = st.nextToken();
    String p = st.nextToken(); // literal pos
    String posX = st.nextToken(); // pos itself, coordinate 1
    String posY = st.nextToken(); // pos itself, coordinate 1
    String posZ = st.nextToken(); // pos itself, coordinate 1
    String f =  st.nextToken(); // literal frame
    f        =  st.nextToken(); // frame

    if (st.hasMoreTokens()) {
      meta = st.nextToken(); // literal meta
      meta = st.nextToken();
    }

    this.frame =  parseInt(f);
    this.tipo  =  getTipoByString(t);

    this.pos = new PVector (parseFloat(posX), parseFloat(posY), parseFloat(posZ));
  }

  Golpe(int fr, int ti, float x, float y, float z) {
    this.frame=fr;
    this.tipo=ti;
    this.pos = new PVector(x, y, z);
  }
  Golpe(int fr, int ti, PVector posicion) {
    this.frame=fr;
    this.tipo=ti;
    this.pos = posicion;
  }

  int getTipo() {
    return tipo;
  }

  void pinta() {
    switch (tipo) {
    case 0: // saque
      fill (255,233,18);
      break;
    case 4: // punto
    case 5:
      fill (255,0,0);
      break;
    default:
      fill(255);
    }
    ellipse(pos.x, pos.z, 10, 10);
  }

  void setTipo(int i) {
    this.tipo=i;
  }

  String toString() {

    String cad = tGolpe[tipo] + " pos:" + pos + " frame:" + frame;
    if (meta != null) 
      cad = cad +" meta:" + meta;
    return cad;
  }

  Boolean equals (Golpe g) {
    Boolean iguales =    (tipo  == g.tipo);

    iguales = iguales && (frame == g.frame);
    iguales = iguales && (pos.x == g.pos.x);
    iguales = iguales && (pos.y == g.pos.y);
    iguales = iguales && (pos.z == g.pos.z);
    return iguales;
  }
}


